Implementing Python for DrRacket

نویسندگان

  • Pedro Palma Ramos
  • António Menezes Leitão
چکیده

The Python programming language is becoming increasingly popular in a variety of areas, most notably among novice programmers. On the other hand, Racket and other Scheme dialects are considered excellent vehicles for introducing Computer Science concepts. This paper presents an implementation of Python for Racket and the DrRacket IDE. This allows Python programmers to use Racket libraries and vice versa, as well as using DrRacket’s pedagogic features. In particular, it allows architects and designers to use Python as a front-end programming language for Rosetta, an IDE for computer-aided design, whose modelling primitives are defined in Racket. Our proposed solution involves compiling Python code into equivalent Racket source code. For the runtime implementation, we present two different strategies: (1) using a foreign function interface to borrow the data types and primitives from Python’s virtual machine or (2) implementing Python’s data model over Racket data types. While the first strategy is easily implemented and provides immediate support for Python’s standard library and existing third-party libraries, it suffers from performance issues: it runs, at least, one order of magnitude slower when compared to Python’s reference implementation. The second strategy requires us to implement Python’s data model in Racket and port all of Python’s standard library, but it succeeds in solving the former’s performance issues. Furthermore, it makes interoperability between Python and Racket code easier to implement and simpler to use. 1998 ACM Subject Classification D.3.4 Programming Languages: Processors

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

An Implementation of Python for DrRacket

The Python programming language is becoming increasingly popular in a variety of areas, most notably among novice programmers. This paper presents an implementation of Python for DrRacket which allows Python programmers to use DrRacket’s features with Python code, as well as adding Python support for DrRacket based tools, such as Rosetta. The suggested approach involves compiling Python code in...

متن کامل

An Implementation of Python for Racket

Racket is a descendent of Scheme that is widely used as a first language for teaching computer science. To this end, Racket provides DrRacket, a simple but pedagogic IDE. On the other hand, Python is becoming increasingly popular in a variety of areas, most notably among novice programmers. This paper presents an implementation of Python for Racket which allows programmers to use DrRacket with ...

متن کامل

PyonR: A Python Implementation for Racket

The Python programming language is becoming increasingly popular in a variety of areas, most notably among novice programmers, due to its readable syntax and extensive libraries. On the other hand, the Racket language and its DrRacket IDE have a tradition for being used to introduce Computer Science concepts to students. Besides, the Racket platform can be extended to support other programming ...

متن کامل

Identification of Categorical Registration Data of Domain Names in Data Warehouse Construction Task

This work is dedicated to formation of data warehouse for processing of a large volume of registration data of domain names. Data cleaning is applied in order to increase the effectiveness of decision making support. Data cleaning is applied in warehouses for detection and deletion of errors, discrepancy in data in order to improve their quality. For this purpose, fuzzy record comparison algori...

متن کامل

Prototyping DSU Techniques Using Python

This paper presents PyMoult, a Python library implementing various dynamic software update (DSU) mechanisms. This library aims to provide a prototyping platform for experimenting with DSU and to implement a vast choice of update mechanisms while allowing their combination and customization. We selected different update mechanisms from the literature and implemented them in PyMoult. This paper f...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2014